The invention relates to a computer system. More particularly it relates to a computer capable of storing and booting secure utility programs by having the secure utility programs share a disk partition with hibernation data.
Computer manufacturers have continued to provide users of personal computers (PCs) with a constant stream of new technology and features. However, as PCs become more complex, market pressures make it imperative that their use and operation become userfriendlier. By doing so, more users who are not technologically savvy will purchase PCs, thus creating an ever larger market. In addition, as computer manufacturers have driven down the cost of a PC, more users are beginning to perceive the PC as a simple appliance rather than a technological marvel. This change in assumption also leads the user to have increased expectations in regard to product quality and program and file security. Most appliances are very reliable and do not require a considerable amount of maintenance as has been the reputation for PCs. When appliances do fail, the user or a service technician is usually able to very quickly diagnose and repair it. Therefore, computer manufacturers are being driven to provide utility programs to either help prevent failures in the PC from occurring, or when they do, help the user or service technician quickly diagnose and repair the PC.
Most PCs are shipped with low-level software, called a BIOS, that provides a minimal set of self-tests when the PC is turned on or reset. These self-tests were written when the PC was originally designed in the early 1980""s and were done primarily for the benefit of the computer manufacturers and their service organizations. Only a small amount of self-testing was performed due to the limited storage space in the BIOS of early PC""s. The computer manufacturers only implemented as much testing as was required to execute a more complete diagnostic self-test that was loaded into the PC using a floppy drive. Because of the complexity of these complete diagnostic self-tests, they were generally not made available to users. Therefore, when a user experienced a PC that would not function properly, the PC had to be returned to the manufacturer""s service center or a computer technician would have to make an office or house call. One difficulty in providing complete self-test programs to users was that the self-test programs could be damaged or lost if provided in a floppy disk format. Also, if the self-test programs were used on a PC not made by the manufacturer, it might cause the non-manufacturer PC to completely malfunction or fail. The cost of incorporating the self-test into the PC was prohibitive due to the amount of memory required in the limited BIOS.
Additionally, new PC technology has created additional reliability and file security concerns for the user. With the advent of multiple operating systems being available for a PC and their infamous upgrade cycles, many PCs have not been able to be upgraded due to the BIOS being unaware of the new features of the upgrade thus causing obsolescence. These PCs BIOS could not be upgraded due to the BIOS being stored in an integrated circuit chip. Most early PCs could either not have their BIOS chips removed or required professional removal and installation. Newer PCs have programmable BIOS chips but these chips increase the cost of the PC and have a high failure rate if the BIOS update procedure is not followed properly or some other event such as a power drop or surge occurs during programming.
Yet another reliability and file security concern that has been created with the growth of PC technology is the xe2x80x9ccomputer virus.xe2x80x9d This computer virus is typically a cleverly designed program written by high-tech pranksters or saboteurs in order to harm or create havoc on the user""s PC. Many viruses have been distributed which cause user""s PC to have its mass storage device, such as a hard disk, completely erased. Virus protection programs have been written and sold which search for, remove, and clean up or prevent the damage that these viruses cause. New viruses, however, have been created that now seek out, attack, and destroy the virus checking programs themselves. The creators of the viruses can do this peril because there is little protection for one program on a PC to prevent another from accessing and modifying it.
Similarly, users are also experiencing mass storage file corruption and destruction because PCs have little or no security protection from unauthorized use and espionage. Even when PCs provide password protection, technical experts have become skilled at breaking or bypassing this limited security scheme. Numerous news articles have reported computer break-ins even at secure military sites such as the Pentagon and CIA. Because authorization security needs to be performed before the machine boots the operating system, it is difficult to add better security to the BIOS. One costly current alternative is to add custom circuitry which has its own specially coded microprocessor to the PC. However, without a low cost secure authorization technique provided by the PC manufacturer, the ordinary user is at tremendous peril to today""s high-tech cyber thieves.
Therefore, PC manufactures need to provide a method by which they can not only assure a user that their PC is working reliably in several aspects but that it is also safe from product obsolescence, rogue viruses, and its files secure from unauthorized access.
A computer has a central processing unit, memory and an I/O subsystem. The I/O subsystem is linked to a mass storage device having a first partition, and a second partition containing a hibernation data storage area. The mass storage device further includes a partition table which indicates that the first partition is active to boot the computer and that the second partition is not active. The computer also has logic using the I/O subsystem to select which partition is to be used to boot the computer. The memory contains a program, in response to the logic to select the partition, which is capable of reading the partition table of the mass storage device and modifying it so that the selected partition is presented as active to the CPU for booting the computer.